import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** CRM 订单产品关联信息 */
export interface OrderProduct {
          id: number; // 主键
          orderId?: number; // 订单编号
          productId?: number; // 产品编号
          productPrice?: number; // 产品单价
          orderPrice?: number; // 订单价格
          count?: number; // 数量
          totalPrice?: number; // 总计价格
}

/** CRM 订单信息 */
export interface Order {
          id: number; // 编号，主键自增
          orderName?: string; // 订单名称
          orderNo?: string; // 订单编号
          slipNo?: string; // 单据编号
          customerId?: number; // 客户编号
          storeId?: number; // 店铺编号
          businessId: number; // 商机编号
          contactLastTime: string | Dayjs; // 最后跟进时间
          ownerUserId: number; // 负责人的用户编号
          processInstanceId: string; // 工作流编号
          auditStatus?: number; // 审批状态
          orderStatus?: number; // 订单状态
          orderType?: string; // 订单类型
          salesScope: string; // 销售范围
          salesAgent: string; // 销售代理商
          orderDate: string | Dayjs; // 下单日期
          shipTime: string | Dayjs; // 发货时间
          deliveryTime: string | Dayjs; // 到货时间
          deliveryType: string; // 交货方式
          startTime: string | Dayjs; // 开始时间
          endTime: string | Dayjs; // 结束时间
          totalProductPrice: number; // 产品总金额
          discountPercent: number; // 整单折扣
          totalPrice: number; // 订单总金额
          signContactId: number; // 联系人编号
          signUserId: number; // 公司下单人
          areaId: number; // 收货地区编号
          detailAddress: string; // 收货详细地址
          remark: string; // 备注
            orderproducts?: OrderProduct[]
}

// CRM 订单 API
export const OrderApi = {
  // 查询CRM 订单分页
  getOrderPage: async (params: any) => {
    return await request.get({ url: `/crm/order/page`, params })
  },

  // 查询CRM 订单详情
  getOrder: async (id: number) => {
    return await request.get({ url: `/crm/order/get?id=` + id })
  },

  // 新增CRM 订单
  createOrder: async (data: Order) => {
    return await request.post({ url: `/crm/order/create`, data })
  },

  // 修改CRM 订单
  updateOrder: async (data: Order) => {
    return await request.put({ url: `/crm/order/update`, data })
  },

  // 删除CRM 订单
  deleteOrder: async (id: number) => {
    return await request.delete({ url: `/crm/order/delete?id=` + id })
  },

  /** 批量删除CRM 订单 */
  deleteOrderList: async (ids: number[]) => {
    return await request.delete({ url: `/crm/order/delete-list?ids=${ids.join(',')}` })
  },

  // 导出CRM 订单 Excel
  exportOrder: async (params) => {
    return await request.download({ url: `/crm/order/export-excel`, params })
  },

// ==================== 子表（CRM 订单产品关联） ====================

  // 获得CRM 订单产品关联列表
  getOrderProductListByOrderId: async (orderId) => {
    return await request.get({ url: `/crm/order/order-product/list-by-order-id?orderId=` + orderId })
  },
}
